﻿// Utilities/NameConverter.cs

using System;
using System.Linq; // 引入LINQ命名空间以使用Select方法

namespace DatabaseManager.Utilities
{
    public static class NameConverter
    {
        /// <summary>
        /// 将下划线命名转为 PascalCase（首字母大写）
        /// </summary>
        public static string ToPascalCase(string input)
        {
            if (string.IsNullOrEmpty(input)) return input;

            // 显式使用System命名空间下的StringSplitOptions
            var words = input.Split(new[] { '_', ' ' }, System.StringSplitOptions.RemoveEmptyEntries);

            // 使用LINQ的Select方法转换每个单词
            return string.Concat(words.Select(word =>
                word.Length > 0 ? char.ToUpper(word[0]) + word.Substring(1).ToLower() : string.Empty
            ));
        }

        /// <summary>
        /// 将下划线命名转为 CamelCase（首字母小写）
        /// </summary>
        public static string ToCamelCase(string input)
        {
            if (string.IsNullOrEmpty(input)) return input;

            var pascal = ToPascalCase(input);
            return pascal.Length > 0 ? char.ToLower(pascal[0]) + pascal.Substring(1) : string.Empty;
        }
    }
}
